package com.Algorithm.HUAWEI.one20211020;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 *
 * @Author: zjz
 * @Date: 2021/10/21/10:04
 * @Description: 有一只兔子，从出生后第3个月起每个月都生一只兔子，小兔子长到第三个月后每个月又生一只兔子，
 *    假如兔子都不死，问第n个月的兔子总数为多少？
 * @Target:
 */
public class 统计每个月兔子的总数 {

    // 问题:第n个月    兔子  总数
    // 兔子会生产   三月变2
   // 总量:  1 1 2 3 5 8 13 21 34


    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);
        int len = 6;
        Queue<Integer> queue = new LinkedList<>();

/*
        while (len>0){
            len--;
            queue.add(input.nextInt());
        }
*/


        while(input.hasNext()){
            int month = input.nextInt();
            int sum = Sum(month);
            System.out.println(sum);
        }


/*
        while (!queue.isEmpty()){
            System.out.println(Sum(queue.poll()));
        }
*/



    }




    public static int Sum(int month){

        if(month==1||month==2){
            return 1;
        }

        return Sum(month-1)+Sum(month-2);

    }

/*
* 不使用斐波那契
*
*
* */
//public static void main(String[] args) throws IOException {
//    // 我需要统计到一个兔子生出多少时间了，初始1只，按月数增长。一个是兔子列表，一个是日期
//    // tuzi[]  date[]  同步增长的
//
//    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
//    Integer integer1 = Integer.valueOf(in.readLine());
//    ArrayList<Integer> tuzi = new ArrayList();  // 永远都是1，表示1只兔子
//    ArrayList<Integer> date = new ArrayList();
//    // 总量:  1 1 2 3 5 8 13 21 34
//    tuzi.add(1);
//    date.add(1);
//    dealWith(integer1,tuzi,date);
//    System.out.println(tuzi.size());
// /*       for (Integer integer : tuzi) {
//            System.out.print(integer+" ");
//        }
//
//        System.out.println();
//        for (Integer integer : date) {
//            System.out.print(integer+" ");
//        }
//*/
//}
    static void dealWith(int month, ArrayList<Integer> tuzi,ArrayList<Integer> date){

        int index =0;
        for (int i = 1; i < month; i++) {
            addOneDay(date);
            for (int j = 0; j < date.size(); j++) {
                if (check(date.get(j))){
                    tuzi.add(1);
                    date.add(1);
                }
            }

        }

    }


    static boolean check(int i){
        // 第一个月，第二个月不生
        if (i==1||i==2){
            return false;
        }else{
            return true;
        }
    }


    static void addOneDay(ArrayList<Integer> list){
        for (int i = 0; i < list.size(); i++) {
            list.set(i,list.get(i)+1);
        }
    }
}
